DynamoDBの delete_item() で存在しない項目を削除したとき、キャパシティユニットが消費されるか確認してみた
存在しない項目を delete_item() しても、DynamoDBのキャパシティユニットは消費されました。
DynamoDBテーブルで項目を削除するとき、存在しない項目も指定できます。 このとき、キャパシティユニットが消費されるのか気になったので、試してみました。
おすすめの方
- 掲題について知りたい方
適当なDynamoDBテーブルを用意する
適当なDynamoDBテーブルを用意します。
実験用のスクリプトを作成し、実行する
import boto3 dynamoDB = boto3.resource("dynamodb") table = dynamoDB.Table("boto3-test") def main(): resp = table.delete_item(Key={"todoId": "t0001"}, ReturnConsumedCapacity="TOTAL") print(resp["ConsumedCapacity"]) if __name__ == "__main__": main()
スクリプトを実行する
キャパシティユニットが消費されました。
$ python app.py {'TableName': 'boto3-test', 'CapacityUnits': 1.0}
さいごに
存在しない項目を delete_item() しても、DynamoDBのキャパシティユニットは消費されました。 冪等性などの観点で多用することもあると思いますが、頭の片隅には置いておきたいですね。